home *** CD-ROM | disk | FTP | other *** search
/ MacWorld: Hardware Guide 1994 / Macworld Interactive - Hardware Guide 1994 (PDO).iso / Demos / Aldus® SuperPaint / Aldus SuperPaint 3.0 Trial Size / Aldus SuperPaint 3.0 Trial Size.rsrc / TEXT_253.txt < prev    next >
Text File  |  1993-03-24  |  8KB  |  88 lines

  1. % P3 - v1 Copyright 1991 Silicon Beach Software, inc.
  2. userdict/P3_d known not{userdict begin/P3_d 150 dict def P3_d begin systemdict/currentpacking
  3. known dup{currentpacking exch true setpacking}if/a{bind def}bind def/b{exch def}a/d{0 def}a
  4. /aS{false def}a/c{null def}a/e{userdict begin P3_d end begin/f b/g b countdictstack
  5. save f 2 add 2 roll count f sub/h b/g load end{exec}stopped userdict begin P3_d end begin/i b
  6. count h sub{pop}repeat i 3 1 roll restore countdictstack exch sub{end}repeat end}a/r{/j b/k b
  7. /l b/m aS/n c/q load end{exec}stopped userdict begin P3_d end begin{clear/m aS}if m j restore
  8. }a/s{/t k def/u l def/v m def/w n def/k b/l b/m aS/n c/q load end exec userdict begin P3_d end begin
  9. /k t def/l u def/m v def/n w def}a/o{/j b/k b/l b/m aS/n c{currentfile token not{false exit}if
  10. dup dup type/nametype eq exch xcheck and{end load userdict begin P3_d end begin}if/q load end
  11. {exec}stopped userdict begin P3_d end begin{false exit}if m{true exit}if}loop currentrgbcolor currentlinewidth j restore
  12. setlinewidth setrgbcolor}a/x 10 array def/y d/z{dup/restore load eq{pop pop}{dup/save load eq{pop null}{dup dup dup dup/for
  13. load eq exch/forall load eq or exch/repeat load eq or exch/loop load eq or{/A b x y/n load put
  14. /y y 1 add def/n b{B}A/y y 1 sub def/n x y get def}{dup/exec load eq{pop/q load end exec userdict
  15. begin P3_d end begin}{dup/ifelse load eq{pop/C b/D b{/D}{/C}ifelse load/q load end exec userdict
  16. begin P3_d end begin}{dup/if load eq{pop/D b{/D load/q load end exec userdict begin P3_d end begin}if}{/E d
  17. l{dup systemdict exch known{load 1 index eq{pop k E get exec/m true def exit}if}{pop}ifelse/E E 1 add def}forall l length E eq
  18. {end exec userdict begin P3_d end begin}if}ifelse}ifelse}ifelse}ifelse}ifelse}ifelse}a/B{/n load/q load
  19. end exec userdict begin P3_d end begin}a/q{dup xcheck{dup dup type/arraytype eq exch type/packedarraytype eq or
  20. {{dup xcheck{dup type/nametype eq{load true}{false}ifelse userdict begin P3_d end begin/F b dup dup type
  21. /arraytype eq exch type/packedarraytype eq or{F{/q load end exec userdict begin P3_d end begin}if}{dup type
  22. /operatortype eq{z}{end exec userdict begin P3_d end begin}ifelse}ifelse end}if}forall}{dup type/operatortype eq
  23. {userdict begin P3_d end begin z end}{exec}ifelse}ifelse}if}a/p[/image/colorimage/imagemask]def
  24. /aF[{aG}{aH}{imagemask}bind]def/cim{userdict begin P3_d end begin p aF save o pop end}a/aI{aJ{gsave
  25. aK aL 3 index idtransform translate aM 1 4 index 4 index{aN}image grestore/aO d/aM d/aJ aS}if
  26. }a/aG{2 index 8 ne{image}{4 index cvi string/aN b/aP 0 string def/aQ d/aJ aS/aO d/aM d 0 1
  27. 5 index 1 sub{/aL b 0 1 6 index 1 sub{aQ aP length ge{1 index dup type/stringtype ne{exec}if
  28. /aP b/aQ d}if aP aQ get/aQ aQ 1 add def dup 255 eq{pop pop aI}{aN aO 3 -1 roll put/aO aO 1
  29. add def/aM aM 1 add def aJ not{/aK b/aM 1 def/aJ true def}{pop}ifelse}ifelse}for aI}for pop
  30. 4{pop}repeat}ifelse}a/aR{aJ{gsave aK aL 5 index idtransform translate aM 1 6 index 6 index
  31. {aN}false 6 index colorimage grestore/aO d/aM d/aJ aS}if}a/aH{4 index 8 ne 2 index or{colorimage
  32. }{dup 1 eq{pop pop aG}{dup 3 eq{6 index cvi 3 mul string/aN b/aP 0 string def/aQ d/aJ aS/aO d
  33. /aM d 0 1 7 index 1 sub{/aL b 0 1 8 index 1 sub{aQ aP length ge{3 index dup type/stringtype ne
  34. {exec}if/aP b/aQ d}if aP aQ get/aQ aQ 1 add def aP aQ get/aQ aQ 1 add def aP aQ get/aQ aQ 1 add def
  35. dup 255 eq 2 index 255 eq and 3 index 255 eq and{4{pop}repeat aR}{aN aO 5 -1 roll put/aO aO
  36. 1 add def aN aO 4 -1 roll put/aO aO 1 add def aN aO 3 -1 roll put/aO aO 1 add def/aM aM 1 add def
  37. aJ not{/aK b/aM 1 def/aJ true def}{pop}ifelse}ifelse}for aR}for 7{pop}repeat}{
  38. dup 4 eq{6 index cvi 4 mul string/aN b/aP 0 string def/aQ d/aJ aS/aO d/aM d 0 1 7 index 1 sub
  39. {/aL b 0 1 8 index 1 sub{aQ aP length ge{3 index dup type/stringtype ne{exec}if/aP b/aQ d}if
  40. aP aQ get/aQ aQ 1 add def aP aQ get/aQ aQ 1 add def aP aQ get/aQ aQ 1 add def aP aQ get/aQ aQ 1 add def
  41. dup 255 eq 2 index 255 eq and 3 index 255 eq and 4 index 255 eq and{5{pop}repeat aR}{aN
  42. aO 6 -1 roll put/aO aO 1 add def aN aO 5 -1 roll put/aO aO 1 add def aN aO 4 -1 roll put/aO aO
  43. 1 add def aN aO 3 -1 roll put/aO aO 1 add def/aM aM 1 add def aJ not{/aK b/aM 1 def/aJ true def
  44. }{pop}ifelse}ifelse}for aR}for 7{pop}repeat}{colorimage}ifelse}ifelse}ifelse}ifelse
  45. }a/G[/show/ashow/widthshow/awidthshow/kshow]def/H[{I}{0 0 0 6 3 roll J}bind{0 0 3 -1 roll J}
  46. bind{J}{exch /K b I}bind]def/ftp{/L b/M b/N b/K c/O M{2}{1}ifelse def G H 4 -1 roll r pop}
  47. a/I{5{0}repeat 6 -1 roll J}a/P[/show/setcachedevice/setcharwidth]def/Q[{userdict begin P3_d
  48. end begin/R R 1 add def/S currentfont def currentpoint transform/T b/U b R O eq{/V currentfont
  49. def/W U def/X T def/Y true def}if end pop}bind{6{pop}repeat}bind{pop pop}bind]def/Z( )def
  50. /au{moveto{ag setfont Z end gsave 0 setgray stringwidth grestore userdict begin P3_d end begin rmoveto/K load null ne
  51. {/ah ah 1 add def ah aa length le{ai aa ah get K}if}{ac ab rmoveto ai ad eq{af ae rmoveto
  52. }if}ifelse}stopped currentdict userdict begin P3_d ne{P3_d end begin}{end}ifelse}a/_doTexturePat aS
  53. /J{/aa b/ab b/ac b/ad b/ae b/af b gsave currentfont dup/V b/ag b/Y aS/S c/W d/X d/P3_dx
  54. d/P3_dy d ag begin FontType 3 eq end M N or and{gsave currentpoint newpath 1000 dup dup dup
  55. moveto lineto closepath clip moveto/R d ag begin FontMatrix concat 0 0 transform neg exch neg
  56. exch idtransform translate ag 65/BuildChar load end{exec}P Q s grestore Y{R M{6}{5}ifelse eq{/V
  57. S def/W U def/X T def}if R M{3}{2}ifelse ne{/S c}if/P3_dx W def/P3_dy X def W X idtransform/X
  58. b/W b/V V ag begin FontMatrix end makefont def S null ne{/S S ag begin FontMatrix end makefont
  59. def}if}{/S c}ifelse}if _doTexturePat{systemdict/makepattern known}{false}ifelse{matrix currentmatrix
  60. P3_tm setmatrix W X translate 1 -1 scale 0 ph translate tr aload pop pop pop neg exch neg exch translate
  61. settexturepat setmatrix W X translate W X rmoveto/ah d aa{/ai b Z 0 ai put V setfont currentpoint Z show au{exit}if}forall
  62. }{10 setlinewidth/ah d currentpoint newpath 0 0 moveto 0 0 lineto closepath moveto aa{/ai b Z 0
  63. ai put currentpoint V setfont W X rmoveto count 1 add dup 1 roll Z true{charpath}stopped count
  64. count -1 roll sub{pop}repeat currentpoint{L}0 e pop newpath 0 dup dup dup moveto lineto
  65. closepath moveto au{exit}if}forall}ifelse grestore S null ne{gsave W X rmoveto 0 setgray/ah d
  66. aa{/ai b Z 0 ai put S setfont currentpoint Z show au{exit}if}forall grestore}if/K c/_doTexturePat aS}a/ax{5 index 4
  67. index gt 8 index 3 index lt 6 index 5 index gt 9 index 4 index lt and and and[10 2 roll cleartomark
  68. }a/fp{tp{aload pop 1 1 4 index{gsave pop 3 index aload pop translate tr aload pop{clippath}stopped{-10000 dup dup dup}
  69. {pathbbox}ifelse ax{fsa{exec}forall}if 3 index aload pop 2 index add exch 3 index add exch 5 index
  70. astore pop grestore}for 4{pop}repeat}forall}a/aE{systemdict/vmreclaim known{1 vmreclaim}if vmstatus exch sub exch pop exch 10000 add
  71. lt{txrErrStr = flush stop}if}a/dia{userdict/P3_d get begin{{readstring}}{{readhexstring}}ifelse/aY b
  72. /ay b/ar ay{8}{exch}ifelse def/as b/at b/aT at ay{5 mul}{ar 1 eq{8 div ceiling}if}ifelse round cvi def
  73. /ba systemdict/colorimage known def/bb ay{ba{.8}{.2}ifelse}{1}ifelse def ay{/bc at 4 mul round cvi def
  74. /bd bc string def/be at round cvi def/bf be string def}if/az aT as mul round cvi def az bb mul aE
  75. /aU 30000 bb div aT div floor aT mul round cvi def/ia az aU div ceiling cvi array def/iai 0 def
  76. {/aA az aU le{az}{aU}ifelse def ia iai ay{/bg 0 def aA bb mul round cvi string aA aT div round cvi{ba
  77. {dup bg currentfile bd aY pop putinterval/bg bg bc add def currentfile bf aY pop pop}{
  78. currentfile bd aY pop pop dup bg currentfile bf aY pop putinterval/bg bg be add def}ifelse
  79. }repeat}{currentfile aA string aY pop}ifelse put/iai iai 1 add def/az az aA sub def az 0 le{exit}if
  80. }loop end}a/aD{ia iai get/iai iai 1 add def}a/aV{ia iai get aW at getinterval/aW aW at add def}a
  81. /aZ{ia iai get length aW le{/iai iai 1 add def/aW 0 def}if}a/im{userdict/P3_d get begin
  82. /iai 0 def/aW 0 def ay{systemdict/colorimage known{{aV}{aV}{aV}{aV aZ}true 4 colorimage
  83. }{{aD}image}ifelse}{{aD}image}ifelse end}a/settexturepat{8 dict dup begin/PatternType 1 def
  84. /PaintType 1 def/TilingType 1 def/BBox tr def/XStep BBox 2 get BBox 0 get sub def/YStep BBox
  85. 3 get BBox 1 get sub def/PaintProc{pop save fsa{exec}forall restore}def end matrix gsave tp 0 get 0 get aload
  86. pop translate makepattern grestore setpattern}a/gofillit{systemdict/makepattern known{settexturepat
  87. {eofill}{fill}ifelse}{{eoclip}{clip}ifelse fp}ifelse}a{setpacking}if end end}if
  88.